package com.xiaojimao.gr_gateway.Config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.cors.reactive.CorsWebFilter;

@Configuration
public class GrXiaoJiMaoCorsConfig {

    /**
     * 配置全局跨域问题解决
     * CorsWebFilter org.springframework.web.cors.reactive.CorsWebFilter; 这个包下的
     * @return
     */
    @Bean
    public CorsWebFilter corsFilter() {
        // 基类路径资源配置类
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        // 跨域配置
        CorsConfiguration configuration = new CorsConfiguration();
        // 允许所有的请求头
        configuration.addAllowedHeader("*");
        // 允许所有的请求方法
        configuration.addAllowedMethod("*");
        // 允许所有的来源
        configuration.addAllowedOrigin("*");
        // 允许是否携带证书
        configuration.setAllowCredentials(true);
        // 资源配置类注册注册我们自己的跨域配置，应用于全局来源请求
        source.registerCorsConfiguration("/**", configuration);
        return new CorsWebFilter(source);
    }
}
